package com.dst.smart.handler.disposer;

import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.dst.smart.app.MainActivity;
import com.dst.smart.handler.entity.SemanticResult;
import com.dst.smart.handler.entity.ServiceType;
import com.dst.smart.json.ProjectUtils;
import com.dst.smart.json.WeatherUtils;
import com.dst.smart.model.WeatherInfo;
import com.dst.smart.tools.JSONHelper;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *	天气
 * 	查看北京今天的天气
 	上海天气怎么样
 	南京这周六热不热
 *
 * author <a href="http://www.xfyun.cn">讯飞开放平台</a>
 * date 2016年9月5日 下午4:58:10
 *
 */
public class WeatherDisposer extends Disposer{

	public WeatherDisposer(Context context) {
		super(context);
	}

	@Override
	public void disposeResult(SemanticResult semanticResult) {
		try {
			if(semanticResult!=null) {
				String text = semanticResult.getAnswerText();
				JSONArray data = semanticResult.getResult();
				if (data != null && data.length() > 0) {
					JSONObject result = data.getJSONObject(0);
					if ((text != null) && (text.length() > 0)) {
						//if((MainActivity.mIsWakeUp==255)&& MainActivity.isUploadText.equals("")){
						if (((MainActivity.mIsWakeUp == 255) && MainActivity.isUploadText.equals("")) || (MainActivity.mWeatherMode == 1)) {
							//"深圳"今天pm25指数"38"，空气质量指数"62"，空气质量"良"
							if (text.contains("pm25")) {
								if (text.contains("优")) {
									text += ".温馨提示:出去走走放松心情，感受下美好大自然吧。";
								} else if (text.contains("良")) {
									text += ".温馨提示:适宜开窗,外出不用佩戴口罩,建议极少数异常敏感人群应减少户外活动。";
								} else if (text.contains("轻微污染")) {
									text += "建议儿童、老年人及心脏病、呼吸系统疾病患者应减少长时间、高强度的户外锻炼。";
								} else if (text.contains("中度污染")) {
									text += "建议疾病患者避免长时间、高强度的户外锻练，一般人群适量减少户外运动。";
								} else if (text.contains("重度污染")) {
									text += "建议儿童、老年人和心脏病、肺病患者应停留在室内，停止户外运动，一般人群减少户外运动。";
								} else if (text.contains("严重污染")) {
									text += "建议儿童、老年人和病人应当留在室内，避免体力消耗，一般人群应避免户外活动。";
								}
							} else {
								JSONObject p = new JSONObject(result.getString("exp")).getJSONObject("ct");
								String prompt = p.getString("prompt");
								String expName = p.getString("expName");
								String level = p.getString("level");
								text += (level + prompt);
								//if (text.contains("雨")) { //
								//	text = text + ".主人!提醒你下雨天出門記的帶傘";
								//}
							}
							getPlayController().playURLList(semanticResult.getUUID(), null);
							getPlayController().playText(semanticResult.getUUID(), text, true, "", null);
							Log.e("text", "Weather" + text);
						} //else {
							boolean recordFlag=true;
							String city = ProjectUtils.getRootPath().getCity();
							if (city!=null&& !city.equals("")) {
								recordFlag=text.contains(city);
							}
							if(recordFlag) {
								WeatherInfo weatherInfo = JSONHelper.parseObject(
										result, WeatherInfo.class);
								WeatherUtils.setWeatherInfo(weatherInfo);
							}
						//}
					}
				}
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}
	
	public boolean canHandle(ServiceType type){
		return (type == ServiceType.WEATHER);
	}

}
